﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _13_List集合_Lambda表达式
{
    class IntArray
    {
        int[] Numbers = { 87, 53, 24, 21, 8, 30, 42, 11, 78 };

        ////定义一个方法，用于查找数组中的所有大于45的元素，然后打印输出
        //public void GetCretaterThan45(Func<int,bool> func)
        //{
        //    foreach (var item in Numbers)
        //    {
        //        if (func(item))
        //        {
        //            Console.WriteLine(item);
        //        }
        //    }
        //}

        ////定义一个方法，用于查找数组中所有小于30的元素，然后打印输出
        //public void GetLessThan30(Func<int, bool> func)
        //{
        //    foreach (var item in Numbers)
        //    {
        //        if (func(item))
        //        {
        //            Console.WriteLine(item);
        //        }
        //    }
        //}

        ////定义一个方法，用于查找数组中所有等于42的元素，然后打印输出
        //public void GetEqualTo42(Func<int, bool> func)
        //{
        //    foreach (var item in Numbers)
        //    {
        //        if (func(item))
        //        {
        //            Console.WriteLine(item);
        //        }
        //    }
        //}

        //public bool GetValeraaterThan45(int item)
        //{
        //    return item > 45;
        //}

        //public bool GetValeraaterThan30(int item)
        //{
        //    return item < 30;
        //}

        //public bool GetValeraaterThan42(int item)
        //{
        //    return item == 42;
        //}


        public void GetResult(Func<int, bool> func)
        {
            foreach (var item in Numbers)
            {
                if (func(item))
                {
                    Console.WriteLine(item);
                }
            }
        }

    }


    internal class Program
    {
        static void Main(string[] args)
        {
            IntArray intArray = new IntArray();

            //Console.WriteLine("=============================找出所有大于45的数值=============================");
            //intArray.GetCretaterThan45();

            //Console.WriteLine("=============================找出所有小于30的数值=============================");
            //intArray.GetLessThan30();

            //Console.WriteLine("=============================找出所有等于42的数值=============================");
            //intArray.GetEqualTo42();

            //Console.WriteLine("=============================找出所有大于45的数值=============================");
            //intArray.GetResult(IsTure);

            //Console.WriteLine("=============================找出所有小于30的数值=============================");
            //intArray.GetResult(item => item < 30);

            //Console.WriteLine("=============================找出所有等于42的数值=============================");
            //intArray.GetResult(item => item == 42);

            StudentArrary studentArrary = new StudentArrary();
            studentArrary.ForEach(Check);

            Console.WriteLine("==================================");

            studentArrary.ForEach(item =>
            {
                if (item.Name == "李四")
                {
                    item.Show();
                }
            });

            double avg = studentArrary.Where(item=>item.Name=="张三").Average();
            Console.WriteLine("平均分：{0:0.00}", avg);

            Console.Read();
        }

        public static bool IsTure(int item)
        {
            return item > 45;
        }

        public static void Check(Student student)
        {
            if (student.Score <60)
            {
                student.Show();
            }
        }

    }
}
